#include <bits/stdc++.h>
using namespace std;
#define int long long
int mon[12]={31,28,31,30,31,
    30,31,31,30,31,30,31};
int s[13]={0};
bool cmp(pair<int, int>a,pair<int, int>b)
{
    return a.first<b.first;
}
void solve()
{
    int n,m,k;
    cin>>n>>m>>k;
    vector<pair<int,int>>v(n+1);
    //s[0]=mon[0];
    for(int i=1;i<12;i++)s[i]=s[i-1]+mon[i-1];
    //vector<int>v(366);
    for(int i=1;i<=n;i++)
    {
        int x,y,z;
        cin>>x>>y>>z;
        // int a=0;
        // for(int i=0;i<x;i++)
        // {
        //     a+=mon[i];
        // }
        v[i]={s[x-1]+y,z};
    }
    
    sort(v.begin()+1,v.end(),cmp);
    vector<int>dis(n+1);
    for(int i=1;i<=n;i++)
    {
        for(int j=i-1;j>=0;j--)
        {
            if(v[i].first-v[j].first>=k)
            {
                dis[i]=j;
                break;
            }
        }
    }
    
    vector<vector<int>>dp(n+1,vector<int>(m+1));
    
    for(int i=1;i<=n;i++)
    {
        for(int j=m;j>=v[i].second;j--)
        {
            dp[i][j]=dp[i-1][j];
            dp[i][j]=max(dp[i][j],dp[dis[i]][j-v[i].second]+v[i].second);
            //cout<<-1<<endl;
        }
        
    }
    //cout<<-1<<endl;
    cout<<dp[n][m]<<endl;
}
signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int T=1;
    //cin>>T;
    while(T--)
    {
       solve();
    }
    return 0;
}